/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.admin.searcher;

import vip.dexian.common.query.Filter;
import vip.dexian.common.query.Order;
import vip.dexian.common.utils.FilterUtils;
import vip.dexian.common.utils.IpToLongUtils;
import vip.dexian.core.base.query.BasePageableSearcher;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * 登录日志分页搜索 表单数据
 *
 * @author 挺好的 2023年06月07日 10:48:02
 */
@Data
@EqualsAndHashCode (callSuper = false)
@Slf4j
public class LoginLogPageSearcher extends BasePageableSearcher {

    /**
     * 是否成功
     */
    private Boolean isSuccess;

    /**
     * 操作ip
     */
    private String ip;

    /**
     * 在filters方法中组合搜索条件
     *
     * @return 搜索条件
     */
    @Override
    public List <Filter> filters () {
        Long longIp = IpToLongUtils.toLong(this.ip);

        if (longIp == 0) {
            longIp = null;
        }

        return FilterUtils.builder().isTrueOrFalse("isSuccess", this.isSuccess).equals("ip", longIp).build();
    }

    /**
     * @return 排序
     */
    @Override
    public List <Order> orders () {
        return null;
    }

}
